/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Cliente;

import Servidor.Produto;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Leonardo
 */
public class TableModelProduto extends AbstractTableModel{
    private ArrayList<Produto> prods;

    // Array com os nomes das colunas da tabela
    private static final String[] columnNames = {"Produto", "Marca", "Tipo", "Preco", "Quantidade"};

    // Construtor default
    public TableModelProduto() {
        prods = new ArrayList<Produto>();
        // COMPLETE-ME: inicialize a lista com algumas disciplinas
    }

    public void setTabela(ArrayList<Produto> p){
        prods = p;
    }
    
    public ArrayList getTabela(){
        return prods;
    }
    
    // Metodo chamado pela GUI para remover um elemento
    public void remove(int index) {
        prods.remove(index);
	fireTableRowsDeleted(index, index);
    }

    // Metodo chamado pela GUI para selecionar um elemento
    public Produto select(int index) {
        return prods.get(index);
    }
    
    

    // Metodo chamado pela GUI para inserir um elemento
    public void add(Produto p) {
        prods.add(p);
        fireTableRowsInserted(prods.size()-1, prods.size()-1);
    }

    // Metodo chamado pela GUI para alterar um elemento
    public void update(int index, Produto p) {
        prods.set(index, p);
        fireTableRowsUpdated(index, index);
    }

    @Override
    public int getColumnCount() {
        return 5;
    }

    @Override
    public String getColumnName(int columnIndex) {
        return columnNames[columnIndex];
    }

    @Override
    public int getRowCount() {
        return prods.size();
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch(columnIndex) {
            case 0: return prods.get(rowIndex).getNome();
            case 1: return prods.get(rowIndex).getTipo();
            case 2: return prods.get(rowIndex).getMarca();
            case 3: return prods.get(rowIndex).getPreco();
            case 4: return prods.get(rowIndex).getQuantidade();
        }
        return null;
    }
}
